A content management system (CMS) typically includes computer software for organizing and facilitating collaborative creation of documents and other content. Commonly, a CMS is used as a tool for end users to prepare and publish content for one or more websites without needing to prepare HTML code. In these instances, the CMS provides an easy-to-use interface that allows end users to change text, images, or other content in a template, and then publish the information to the website.
These website CMS's are excellent tools for end users to manage their own websites. However, the website CMS falls short when the user is a software web developer that desires to use the CMS to develop a web site. Developers need a more functional interface for coding rather than an interface that is primarily used to change content. For example, a developer may need to modify the layout of a web page which may not be possible through a website CMS interface designed for end users. Furthermore, developers may work in a collaborative environment, including testing and staging environments. Typically, a website CMS is not designed to interface with tools used in these environments.